<?php
/*
 * 用户模型
 * 用来定义与用户有关的数据库操作
 *
 */
class User_model extends Model{

    //构造函数
    function __construct(){
        parent::Model();
        $this->load->database();  //加载数据库
    }


    //判断用户名是否已被注册
    function if_registered($get_username){
        $this->db->where('username', $get_username);
        $query=$this->db->get('users');
        if( ($query->row_array())==null ){
            return 0;   //如果数据库中没有符合此用户名的记录，则返回0
        }
        else{
            return 1;   //如果数据库中有符合此用户名的记录则返回1
        }
    }


    //插入新用户
    function add_new_user($userdata){
        $username=$userdata['username'];
        $password=MD5($userdata['password']); //密码进行加密处理
        $email=$userdata['email'];
        $role=$userdata['role'];
        $data = array(
               'username' => $username ,
               'password' => $password ,
               'email' => $email,
               'role' => $role
        );
        $this->db->insert('users', $data);    //插入数据

        if(($this->db->affected_rows())!=1){
            return 0;      //如果插入操作影响的行数不为1，则表示插入失败，返回0
        }
        else{
            return 1;    //如果插入成功，返回1
        }
    }


    //删除用户
    function delete_user($userid){
        $delete_string="DELETE FROM users WHERE user_id={$userid}";
        $this->db->query($delete_string);
        if(($this->db->affected_rows())!=1){
            return 0;      //如果删除操作影响的行数不为1，则表示删除失败，返回0
        }
        else{
            return 1;    //如果删除成功，返回1
        }
    }


    //用户登录验证函数
    function user_login_validate($input_username,$input_password){
        $this->db->where('username', $input_username);
        $query=$this->db->get('users');
        if( ($query->row_array())==null ){
            return -1;   //如果数据库中没有符合此用户名的记录，则返回-1
        }
        else{
            $result=$query->row_array();
            if((MD5($input_password))==$result['password']){
                return 1;   //如果密码正确则返回1
            }
            else{
                return 0;   //如果密码错误则返回0
            }
        }
    }

    function admin_login_validate($input_username,$input_password){
        $this->db->where('user_name', $input_username);
        $query=$this->db->get('dc_user');
        if( ($query->row_array())==null ){
            return -1;   //如果数据库中没有符合此用户名的记录，则返回-1
        }else{
            $result=$query->row_array();
			if($result['user_state']!=0){
				return 1; //如果状态为禁用，则返回1
			}else{
				if((MD5($input_password))==$result['user_password']){
					return 0;   //如果密码正确则返回0
				}else{
					return 2;   //如果密码错误则返回2
				}
			}
        }
    }

	//获取管理员相关信息
	function get_admin_info($input_username){
		$this->db->select('id,user_type,user_areacode,user_name,user_truename,user_lasttime,user_lastip');
		$this->db->where('user_name', $input_username);
		$query=$this->db->get('dc_user');
		$result= $query->row_array();
		return $result;
	}

	//获取地区代码相关信息
	function get_area($areacode){
		$this->db->where('areacode', $areacode);
		$query=$this->db->get('dc_areacode');
		$result= $query->row_array();
		$result= $result['area'];
		return $result;
	}

//修改密码
    function change_password($user_id,$new_password){
        $new_pass=MD5($new_password);
        $update_string="UPDATE users SET password='{$new_pass}' WHERE user_id={$user_id}";
        $update=$this->db->query($update_string);
        if(($this->db->affected_rows())!=1){
            return 0;      //如果删除操作影响的行数不为1，则表示删除失败，返回0
        }
        else{
            return 1;    //如果删除成功，返回1
        }

    }

 //修改电子邮箱地址
    function change_email($user_id,$new_email){
        $update_string="UPDATE users SET email='{$new_email}' WHERE user_id={$user_id}";
        $update=$this->db->query($update_string);
        if(($this->db->affected_rows())!=1){
            return 0;      //如果删除操作影响的行数不为1，则表示删除失败，返回0
        }
        else{
            return 1;    //如果删除成功，返回1
        }
    }


//获取所有用户信息
    function get_all_users($role){
        $query_string="SELECT * FROM users WHERE role='{$role}'";
        $query = $this->db->query($query_string);
        if( ($query->num_rows())==0 ){
            return null;
        }
        else{
            $result=$query->result();
            return $result;
        }
    }


}

?>
